package org.example.classtopia.Service;

import org.example.classtopia.Model.vo.FolloweeVO;
import org.example.classtopia.Model.vo.PostPreviewVO;

import java.util.List;

public interface UserFollowService {

    /**
     * 关注用户
     * @param followerId 当前操作用户ID（关注者）
     * @param followeeId 被关注用户ID
     * @return 是否成功
     */
    boolean follow(Long followerId, Long followeeId);

    /**
     * 取消关注用户
     * @param followerId 当前操作用户ID（关注者）
     * @param followeeId 被取消关注用户ID
     * @return 是否成功
     */
    boolean unfollow(Long followerId, Long followeeId);

    /**
     * 查询当前用户所有有效关注用户列表
     * @param followerId 当前用户ID
     * @return 关注用户简要信息列表
     */
    List<FolloweeVO> getFollowees(Long followerId);

    /**
     * 查询某用户的所有帖子简要列表
     * @param userId 被查询的用户ID
     * @return 帖子预览列表
     */
    List<PostPreviewVO> getPostsByUserId(Long userId);

    /**
     * 判断用户followerId是否关注了followeeId
     */
    boolean isFollowing(Long followerId, Long followeeId);

}

